// pages/profile/profile.js
import { userBehavior } from './behavior'
import { setStorage } from '@/utils/storage'
import { toast } from '@/utils/extendApi'
import { reqUploadFile, reqUpdateUserInfo } from '@/api/user'

Page({
  behaviors: [userBehavior],

  data: {
    // 控制更新用户昵称的弹框显示与否
    isShowPopup: false 
  },

  // 更新用户信息
  async updateUserInfo() {
    // 调用接口 API 函数更新用户信息
    const {id,nickName,avatarUrl} = this.data.userInfo
    const res = await reqUpdateUserInfo({id,nickName,avatarUrl})

    if (res.code === 200) {
      //存储到本地
      setStorage('userInfo', this.data.userInfo)

      // 同步到 Store
      this.setUserInfo(this.data.userInfo)

      toast({ title: '用户信息更新成功' })
    }
  },

  // 更新用户头像
  async chooseAvatar(event) {
    // 获取头像的临时路径
    const { avatarUrl } = event.detail

    const res = await reqUploadFile(avatarUrl,'file')

    this.setData({
      'userInfo.avatarUrl': res.data
    })
  },

  // 获取用户昵称
  getNickName(event) {
    // 解构最新的用户昵称
    const { nickName } = event.detail.value
    this.setData({
      'userInfo.nickName': nickName,
      isShowPopup: false
    })
  },

  // 显示修改昵称弹框
  onUpdateNickName() {
    this.setData({
      isShowPopup: true,
      'userInfo.nickName': this.data.userInfo.nickName
    })
  },

  // 弹框取消按钮
  cancelForm() {
    this.setData({
      isShowPopup: false
    })
  }
})
